package com.jjh.springframework.bean.factory.config;

import com.jjh.springframework.bean.BeansException;
import com.jjh.springframework.bean.factory.ConfigurableListableBeanFactory;

/**
 * BeanFactoryPostProcessor
 *
 * 在 Spring 源码中有这样一段描述 Allows for custom modification of an application
 * context's bean definitions,adapting the bean property values of the context's underlying
 * bean factory. 其实也就是说这个接口是满足于在所有的 BeanDefinition 加载完成后，
 * 实例化 Bean 对象之前，提供修改 BeanDefinition 属性的机制。
 *
 * @author jjh
 * @date 2021/06/20
 **/
public interface BeanFactoryPostProcessor {

    /**
     * 在所有BeanDefinition加载完成后，实例化Bean对象之前，提供修改BeanDefinition属性的机制
     * @param beanFactory
     */
    void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException;



}
